package com.ruoyi.backend.domain.orderManagement;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.backend.domain.Member;
import com.ruoyi.backend.domain.OrderServiceItem;
import com.ruoyi.backend.domain.ServiceItem;
import com.ruoyi.backend.domain.Store;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 洗车订单对象 order
 *
 * @author 王冰冰
 * @date 2025-03-19
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class Order extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 订单编号
     */
    @Excel(name = "订单编号")
    private Long orderId;

    /**
     * 订单状态
     */
    @Excel(name = "订单状态")
    private Long orderStatus;

    /**
     * 核销码
     */
    private String verificationCode;

    /**
     * 门店ID
     */
    private Long storeId;

    /**
     * 下单时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date orderTime;

    /**
     * 预约时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date appointmentTime;

    /**
     * 车辆ID
     */
    private Long vehicleId;

    /**
     * 会员ID
     */
    private Long memberId;

    /**
     * 原价
     */
    @Excel(name = "原价")
    private BigDecimal totalAmount;

    /**
     * 实付
     */
    @Excel(name = "实付")
    private BigDecimal actualAmount;

    /**
     * 优惠券ID
     */
    private Long couponId;

    /**
     * 扩展字段1
     */
    private String ext1;

    /**
     * 扩展字段2
     */
    private String ext2;

    /**
     * 扩展字段3
     */
    private String ext3;

    /**
     * 扩展字段4
     */
    private String ext4;

    /**
     * 扩展字段5
     */
    private String ext5;

    /**
     * 关联服务项目
     */
    private List<ServiceItem> serviceItem;

    /**
     * 关联订单服务项目关联表
     */
    private List<OrderServiceItem> orderServiceItem;

    /**
     * 关联门店
     */
    private Store store;

    /**
     * 关联用户
     */
    private Member member;
}